<html>
<body>

<h3>函数功能</h3>该函数把缺省显示设备的设置改变为由lpDevMode设定的图形模式，要改变一个特定显示设备的设置，请使用ChangeDisplaySettingEx函数。<br>
<h3>函数原型</h3>LONG ChangeDisplaySettings (LPDEVMODE lpDevMode, DWORD dwflags)；<br>
<h3>参数</h3>
lpDevMode：指向一个描述转变图表的DEVMODE的指针。DEVMODE的dmSize参数必须依DEVMODE结构的大小、字节进行初始化，dmDriveExtra参数必须初始化来显示DEVMODE随后的驱动数据的字节数，另外还可以选用以下<h3>参数</h3>
dmBitsPerPel每个像素的位数，dmPelsWidth像素宽度，dmPelsHeight像度高度，dmDisplayFlage模式标志。<br>
dmDisplayFrequency模式频率。<br>
dmposition在多显示配置中设备的位置（适用于Windows 98、Windows NT 5.0及以后版本）。<br>
除了设置好DEVMOD结构中诸多元素的值之外，还必须要正确地设置dmFields元素中的标志。这些标志表明了DEVMODE结构中哪个元素在改变显示设置时使用了。如果在dmFields中没有设置正确的位，那么显示设置将不会发生变化。请设置好以下的标志：<br>
DM_BITSPERPEL使用dmBitsPerPel的值，DM_PELSWIDTH使用dmPelsWidth的值，<br>
DM_PELSHEIGHT使用dmPelsHeight的值，DM_DISPLAYFLAGS使用dmDisplayFlags的值，<br>
DM_DISPLAYFREQUENCY使用dmDisplayFrequency的值。<br>
DM_POSITION使用fdmPosition的值（适用于Windows98、WindowsNT5.0）。<br>
如果lpDevMode为空。那么显示设置就使用注册表中的所有当前值。在显示模式动态地调整之后要想再回到缺省的模式，最简单的办法就是把lpDevMode参数置为空，使dwFlags参数置为0。<br>
dwflags：表明了图形模式如何改变，它可能是如下的几种形式中的一种：<br>
0：表明当前屏幕的图形模式要动态地改变。<br>
CDS_UPDATEREGISTRY：表明当前屏幕的图形模式会动态地变化，并且该图形模式会更新注册表。该模式信息存贮在用户档案中。<br>
CDS_TEST：系统检测是否要设置被请求的图形模式。<br>
CDS_FULLSCREEN：从本质上讲该模式是暂时的。<br>
CDS_GLOBAL：该设置保存在全局设置区域内，  因此它们会影响所有的用户。该标志仅在与标志一起使用时才有效。CDS_SET_PRIMARY：该设备成为首要设备。<br>
CDS_RESET：设置要改变，即使请求的设置与当前设置一样。CDS_NORESET：设置保存在注册表中，但是它不起作用，该标志只有与CDS_UPDATEREGISTRY标志一起使用时才有效。<br>
指定CDS_TEST允许一个应用确定哪个图形模式真正的有效。但并不会使系统变为那个有效的图形模式。<br>
如果CDS_UPDATEREGISTRY被指定并且它可能会动态地改变图形模式。则注册表中保存该信息并且返回DISP_CHANGE_SUCCESSFUL如果不可能使用图形模式动态地改变，则注册表中保存该信息并且返回DISP_CHANGE_RESTART。<br>
Windows NT：如果指定了CDS_UPDATEREGISTRY并且在注册表中不能保存该信息，则图形模式不会改变，并且返回DISP_CHANGE_NOTUPDATERD。<br>
<h3>返回值</h3>ChangeDisplaySettings函数的返回值如下：<br>
DISP_CHANGE_SUCCESSFUL：设备改变成功。<br>
DISP_CHANGE_RESTART：为使图形模式生效计算机必须重新启动。<br>
DISP_CHANGE_BADFLAGS：标志的无效设置被传送。<br>
DISP_CHANGE_NOTUPDATED：在WindowsNT中不能把设置写入注册表。<br>
DISP_CHANGE_BADPARA：一个无效的参数被传递。它可以包括一个无效的标志或标志的组合。<br>
DISP_CHANGE_FAILED：指定图形模式的显示驱动失效。<br>
DISP_CHANGE_ADMODE：不支持图形模式。<br>
注释：为了保证传递给ChangeDisplaySetting的DEVMODE结构是有效的，并且仅包含显示驱动支持的值，可以使用由EnumDisplaySettings函数返回的DEVMODE。<br>
当显示模式被动态地改变时，WM_DISPLAYCHANGE消息带着如下的消息参数传递给所有正在运行的应用：<br>
wParam每像素点的新位数，LOWORD（lParam）新像素宽度，HIWORD（lParam）新像素高度。<br>
<h3>速查</h3>Windows NT：3.51及以上版本；Windows：95及以上版本；Windows CE：不支持；头文件：winuser.h；库文件：user32.lib；Unicode：在Windows NT上实现为Unicode和ANSI两种版本。<br>

</body>
</html>
